﻿using MengLin.OOP.DesignPattern.State.RoomManagerSys.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MengLin.OOP.DesignPattern.State.RoomManagerSys.Interface
{
    /// <summary>
    /// 抽象状态类
    /// </summary>
    public abstract class AbstractState
    {
        /// <summary>
        /// 得到房间的状态
        /// </summary>
        /// <returns></returns>
        public abstract string GetState();

        /// <summary>
        /// 预订房间
        /// </summary>
        /// <param name="room"></param>
        public abstract void Book(Room room);

        /// <summary>
        /// 退订房间
        /// </summary>
        /// <param name="room"></param>
        public abstract void UnBook(Room room);

        /// <summary>
        /// 入住
        /// </summary>
        /// <param name="room"></param>
        public abstract void CheckIn(Room room);

        /// <summary>
        /// 退房
        /// </summary>
        /// <param name="room"></param>
        public abstract void CheckOut(Room room);
    }
}
